package day1208_3;
class  Shop2  implements  Runnable{

    Object  o;//锁对象(必须确保多个线程，使用的是同一个锁对象o<o表示的对象只有一份儿>)
    Shop2(Object  o1){
        o=o1;
    }

    int stock=1;
    void subStock(){
        synchronized(o){//synchronized代码块的开头
            if (stock == 0) {
                System.out.println("没有库存了");
                return;
            }
            Thread.yield();
            stock--;
            System.out.println(stock);
        }//synchronized代码块的结尾(右括号)
    }
    public void run() {//1.线程启动会通过start调用run方法
        subStock();//run方法会调用减库存的方法，让库存量减1
    }
}


public class T3 {
    public static void main(String[] args) {
        T1 t=new T1();
        Shop2   s=new Shop2(t);

        Thread  zs=new Thread(s);
        zs.start();

        Thread  lisi=new Thread(s);
        lisi.start();
    }
}








